import type { Model } from '../aiModels'
import { BaseAIProvider } from './base'

export class GeminiProvider extends BaseAIProvider {
  constructor() {
    super(
      `gemini`,
      `Gemini`,
      `Google Gemini API服务`,
      `https://generativelanguage.googleapis.com`,
    )
  }

  getDefaultModels(): Model[] {
    return [
      {
        id: `gemini-pro`,
        name: `Gemini Pro`,
        maxTokens: 32000,
        available: true,
      },
      {
        id: `gemini-ultra`,
        name: `Gemini Ultra`,
        maxTokens: 32000,
        available: true,
      },
    ]
  }

  // 覆盖headers方法，因为Gemini使用API密钥作为URL参数
  getHeaders(_apiKey: string): Record<string, string> {
    return {
      'Content-Type': `application/json`,
    }
  }

  // 覆盖fetchModels方法，因为Gemini API可能有不同的响应格式
  async fetchModels(apiUrl: string, apiKey: string): Promise<Model[]> {
    // Gemini通常不提供模型列表API，使用默认模型
    return this.getDefaultModels()
  }
}
